import fs from 'node:fs';
import path from 'node:path';
import ffmpeg from 'fluent-ffmpeg';

const readDir = '\\\\10.1.1.5\\video\\_待处理\\仙逆\\Season 01';

const directoryPath = 'E:\\仙逆';

fs.readdir(readDir, (err, files) => {
  if (err) {
    console.log('错误的文件夹内容:', err);
    return;
  }

  function cut() {
    const file = files.shift();

    const videoPath = path.join(readDir, file);
    const fileName = file.substring(0, file.lastIndexOf('.'));

    const len = 21;

    // 初始秒数
    const startTime = 162;
    const timeArr = [];
    for (let i = 0; i < len; i++) {
      const timeToCapture = getTimeStr(startTime + i);
      //  const outputPath = path.join(directoryPath, fileName + '_' + i + '.png');
      timeArr.push(timeToCapture);

      /*  // 构建ffmpeg命令
            const ffmpegCommand = `ffmpeg -i ${videoPath} -ss ${timeToCapture} -frames:v 1 ${outputPath}`;
            // 执行命令
            exec(ffmpegCommand, (error, stdout, stderr) => {
                if (error) {
                console.error(`执行出错: ${error}`);
                return;
                }
                console.log('截图成功保存至', outputPath);
            }); */
    }

    ffmpeg(videoPath)
      .outputOptions('-c:v h264_nvenc') // N卡的支持
      .screenshots({
        timestamps: timeArr, // 在视频的第10秒处截取图片
        filename: fileName + '-%d.png', // 图片命名为 screenshot-序号.png
        folder: directoryPath, // 图片保存到 outputFolder 文件夹
        //  size: '640x360', // 图片大小为 640x360
        format: 'png' // 图片格式为 png
      })
      .on('error', err => {
        console.error('Error: ' + err.message);
        if (files.length > 0) {
          cut();
        }
      })
      .on('end', function () {
        console.log(fileName + '截图完成');
        if (files.length > 0) {
          cut();
        }
      });
  }

  cut();
});

function getTimeStr(sec) {
  const h = Math.floor(sec / 3600);
  const m = Math.floor(sec / 60);
  const s = Math.floor(sec % 60);
  return plus0(h) + ':' + plus0(m) + ':' + plus0(s);
}

function plus0(num) {
  if (num < 10) {
    return '0' + num;
  } else {
    return '' + num;
  }
}

/* // 视频文件路径
const videoPath = 'path/to/your/video.mp4';
// 截图保存路径
const outputPath = 'path/to/output/screenshot.png';
// 需要截取的时间点
const timeToCapture = '00:01:30'; // 例如，1分30秒
 
// 构建ffmpeg命令
const ffmpegCommand = `ffmpeg -i ${videoPath} -ss ${timeToCapture} -frames:v 1 ${outputPath}`;
 
// 执行命令
exec(ffmpegCommand, (error, stdout, stderr) => {
  if (error) {
    console.error(`执行出错: ${error}`);
    return;
  }
  console.log('截图成功保存至', outputPath);
}); */
